home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-10-27 | 49.3 KB | 1,649 lines | [TEXT/MPS ] |
- (*
- File: OCEMail.mod
-
- Contains: Apple Open Collaboration Environment OCEMail Interfaces.
-
- Version: Technology: AOCE Toolbox 1.02
- Package: Universal Interfaces 2.1ß1 in “MPW Prerelease” on ETO #17
-
- Copyright: © 1984-1995 by Apple Computer, Inc.
- All rights reserved.
-
- Bugs?: If you find a problem with this file, use the Apple Bug Reporter
- stack. Include the file and version information (from above)
- in the problem description and send to:
- Internet: apple.bugs.applelink.apple.com
- AppleLink: APPLE.BUGS
-
- *)
-
- (*$TAGS-*)
- (*$CALLING PASCAL*)
- MODULE OCEMail;
-
- IMPORT SYSTEM, Types, AppleTalk, Files, TextEdit, OCE, OCEAuthDir, OCEMessaging;
-
- (* $PUSH*)
- (* $ALIGN MAC68K*)
- (* $LibExport+*)
- TYPE
- MSAMIOCompletionUPP* = Types.UniversalProcPtr;
-
- MailMsgRef* = LONGINT;
-
- (* reference to an open msam queue *)
- MSAMQueueRef* = LONGINT;
-
- (* identifies slots managed by a PMSAM *)
- MSAMSlotID* = INTEGER;
-
- (* reference to an active mailbox *)
- MailboxRef* = LONGINT;
-
- (* identifies slots within a mailbox *)
- MailSlotID* = INTEGER;
-
- (* identifies a letter in a mailbox *)
- MailSeqNum* = RECORD
- slotID*: MailSlotID;
- seqNum*: LONGINT;
- END;
-
- (* A MailBuffer is used to describe a buffer used for an IO operation.
- The location of the buffer is pointed to by 'buffer'.
- When reading, the size of the buffer is 'bufferSize'
- and the size of data actually read is 'dataSize'.
- When writing, the size of data to be written is 'bufferSize'
- and the size of data actually written is 'dataSize'.
- *)
- MailBuffer* = RECORD
- bufferSize*: LONGINT;
- buffer*: Types.Ptr;
- dataSize*: LONGINT;
- END;
-
- (* A MailReply is used to describe a commonly used reply buffer format.
- It contains a count of tuples followed by an array of tuples.
- The format of the tuple itself depends on each particular call.
- *)
- MailReply* = RECORD
- tupleCount*: INTEGER;
- (* tuple[tupleCount] *)
- END;
-
- (* Shared Memory Communication Area used when Mail Manager sends
- High Level Events to a PMSAM.
- *)
- SMCA* = RECORD
- smcaLength*: INTEGER; (* includes size of smcaLength field *)
- result*: Types.OSErr;
- userBytes*: LONGINT;
- (*ΔΔ CASE INTEGER OF
- 0: ( *)
- END;
- SMCASlot* = RECORD(SMCA)
- slotCID*: OCE.CreationID; (* for create/modify/delete slot calls *)
- (*ΔΔ );
- 1: ( *)
- END;
- SMCAHint* = RECORD(SMCA)
- msgHint*: LONGINT; (* for kMailEPPCMsgOpened *)
- (*ΔΔ );*)
- END;
-
- (**************************************************************************************)
- (* Value of creator and types fields for messages and blocks defined by MailManager *)
-
- CONST
- kMailAppleMailCreator* = LONG("apml"); (* message and letter block creator *)
- kMailLtrMsgType* = LONG("lttr"); (* message type of letters, reports *)
- kMailLtrHdrType* = LONG("lthd"); (* contains letter header *)
- kMailContentType* = LONG("body"); (* contains content of letter *)
- kMailEnclosureListType* = LONG("elst"); (* contains list of enclosures *)
- kMailEnclosureDesktopType* = LONG("edsk"); (* contains desktop mgr info for enclosures *)
- kMailEnclosureFileType* = LONG("asgl"); (* contains a file enclosure *)
- (* format is defined by AppleSingle *)
- kMailImageBodyType* = LONG("imag"); (* contains image of letter *)
- (* format is struct Printing.TPfPgDir - in Printing.h
- * struct Printing.TPfPgDir (
- * short pageCount; - number of pages in the image.
- * long iPgPos[129]; - iPgPos[n] is the offset from the start of the block
- * - to image of page n.
- * - iPgPos[n+1] - iPgPos[n] is the length of page n.
- *)
- kMailMSAMType* = LONG("gwyi"); (* contains msam specific information *)
- kMailTunnelLtrType* = LONG("tunl"); (* used to read a tunnelled message *)
- kMailHopInfoType* = LONG("hopi"); (* used to read hopInfo for a tunnelled message *)
- kMailReportType* = LONG("rpti"); (* contains report info *)
- (*
- Reports have the isReport bit set in MailIndications and contain a block of type kMailReport.
- This block has a header, IPMReportBlockHeader,
- followed by an array of elements, each of type IPMRecipientReport
-
- Various families used by mail or related msgs
- *)
- kMailFamily* = LONG("mail"); (* Defines family of "mail" msgs*: content, header, etc *)
- kMailFamilyFile* = LONG("file");
-
- (**************************************************************************************)
-
- TYPE
- MailAttributeID* = INTEGER;
-
- (* Values of MailAttributeID *)
- (* Message store attributes - stored in the catalog *)
- (* Will always be present in a letter and have fixed sizes *)
-
- CONST
- kMailLetterFlagsBit* = 1; (* MailLetterFlags *)
- (* Letter attributes - stored in the letter
- Will always be present in a letter and have fixed sizes *)
- kMailIndicationsBit* = 3; (* MailIndications *)
- kMailMsgTypeBit* = 4; (* OCECreatorType *)
- kMailLetterIDBit* = 5; (* MailLetterID *)
- kMailSendTimeStampBit* = 6; (* MailTime *)
- kMailNestingLevelBit* = 7; (* MailNestingLevel *)
- kMailMsgFamilyBit* = 8; (* Types.OSType *)
- (* Letter attributes - stored in the letter
- May be present in a letter and have fixed sizes *)
- kMailReplyIDBit* = 9; (* MailLetterID *)
- kMailConversationIDBit* = 10; (* MailLetterID *)
- (* Letter attributes - stored in the letter
- May be present in a letter and have variable length sizes *)
- kMailSubjectBit* = 11; (* RString *)
- kMailFromBit* = 12; (* MailRecipient *)
- kMailToBit* = 13; (* MailRecipient *)
- kMailCcBit* = 14; (* MailRecipient *)
- kMailBccBit* = 15; (* MailRecipient *)
-
-
- TYPE
- MailAttributeMask* = LONGINT;
-
- (* Values of MailAttributeMask *)
-
- CONST
- kMailLetterFlagsMask* = ASH(1,(kMailLetterFlagsBit - 1));
- kMailIndicationsMask* = ASH(1,(kMailIndicationsBit - 1));
- kMailMsgTypeMask* = ASH(1,(kMailMsgTypeBit - 1));
- kMailLetterIDMask* = ASH(1,(kMailLetterIDBit - 1));
- kMailSendTimeStampMask* = ASH(1,(kMailSendTimeStampBit - 1));
- kMailNestingLevelMask* = ASH(1,(kMailNestingLevelBit - 1));
- kMailMsgFamilyMask* = ASH(1,(kMailMsgFamilyBit - 1));
- kMailReplyIDMask* = ASH(1,(kMailReplyIDBit - 1));
- kMailConversationIDMask* = ASH(1,(kMailConversationIDBit - 1));
- kMailSubjectMask* = ASH(1,(kMailSubjectBit - 1));
- kMailFromMask* = ASH(1,(kMailFromBit - 1));
- kMailToMask* = ASH(1,(kMailToBit - 1));
- kMailCcMask* = ASH(1,(kMailCcBit - 1));
- kMailBccMask* = ASH(1,(kMailBccBit - 1));
-
-
- TYPE
- MailAttributeBitmap* = LONGINT;
-
- (**************************************************************************************)
- MailLetterSystemFlags* = INTEGER;
-
- (* Values of MailLetterSystemFlags *)
- (* letter is available locally (either by nature or via cache) *)
-
- CONST
- kMailIsLocalBit* = 2;
-
- kMailIsLocalMask* = ASH(1,kMailIsLocalBit);
-
-
- TYPE
- MailLetterUserFlags* = INTEGER;
-
-
- CONST
- kMailReadBit* = 0; (* this letter has been opened *)
- kMailDontArchiveBit* = 1; (* this letter is not *)
- (* to be archived either because
- it has already been archived or
- it should not be archived. *)
- kMailInTrashBit* = 2; (* this letter is in trash *)
-
- (* Values of MailLetterUserFlags *)
- kMailReadMask* = ASH(1,kMailReadBit);
- kMailDontArchiveMask* = ASH(1,kMailDontArchiveBit);
- kMailInTrashMask* = ASH(1,kMailInTrashBit);
-
-
- TYPE
- MailLetterFlags* = RECORD
- sysFlags*: MailLetterSystemFlags;
- userFlags*: MailLetterUserFlags;
- END;
-
- MailMaskedLetterFlags* = RECORD
- flagMask*: MailLetterFlags; (* flags that are to be set *)
- flagValues*: MailLetterFlags; (* and their values *)
- END;
-
-
- CONST
- kMailOriginalInReportBit* = 1;
- kMailNonReceiptReportsBit* = 3;
- kMailReceiptReportsBit* = 4;
- kMailForwardedBit* = 5;
- kMailPriorityBit* = 6;
- kMailIsReportWithOriginalBit* = 8;
- kMailIsReportBit* = 9;
- kMailHasContentBit* = 10;
- kMailHasSignatureBit* = 11;
- kMailAuthenticatedBit* = 12;
- kMailSentBit* = 13;
-
- (* Values of MailIndications *)
- kMailSentMask* = ASH(1,kMailSentBit-1);
- kMailAuthenticatedMask* = ASH(1,kMailAuthenticatedBit-1);
- kMailHasSignatureMask* = ASH(1,kMailHasSignatureBit-1);
- kMailHasContentMask* = ASH(1,kMailHasContentBit-1);
- kMailIsReportMask* = ASH(1,kMailIsReportBit-1);
- kMailIsReportWithOriginalMask* = ASH(1,kMailIsReportWithOriginalBit-1);
- kMailPriorityMask* = 3 * ASH(1,kMailPriorityBit-1);
- kMailForwardedMask* = ASH(1,kMailForwardedBit-1);
- kMailReceiptReportsMask* = ASH(1,kMailReceiptReportsBit-1);
- kMailNonReceiptReportsMask* = ASH(1,kMailNonReceiptReportsBit-1);
- kMailOriginalInReportMask* = 3 * ASH(1,kMailOriginalInReportBit-1);
-
-
- TYPE
- MailIndications* = LONGINT;
-
- (* values of the field originalInReport in MailIndications *)
-
- CONST
- kMailNoOriginal* = 0; (* do not enclose original in reports *)
- kMailEncloseOnNonReceipt* = 3; (* enclose original in non-delivery reports *)
-
-
- TYPE
- MailLetterID* = OCEMessaging.IPMMsgID;
-
- MailTime* = RECORD
- time*: OCE.UTCTime; (* current UTC(GMT) time *)
- offset*: OCE.UTCOffset; (* offset from GMT *)
- END;
-
- (* innermost letter has nestingLevel 0 *)
- MailNestingLevel* = INTEGER;
-
- MailRecipient* = OCEMessaging.OCERecipient;
-
- (**************************************************************************************)
-
- CONST
- kMailTextSegmentBit* = 0;
- kMailPictSegmentBit* = 1;
- kMailSoundSegmentBit* = 2;
- kMailStyledTextSegmentBit* = 3;
- kMailMovieSegmentBit* = 4;
-
-
- TYPE
- MailSegmentMask* = INTEGER;
-
- (* Values of MailSegmentMask *)
-
- CONST
- kMailTextSegmentMask* = ASH(1,kMailTextSegmentBit);
- kMailPictSegmentMask* = ASH(1,kMailPictSegmentBit);
- kMailSoundSegmentMask* = ASH(1,kMailSoundSegmentBit);
- kMailStyledTextSegmentMask* = ASH(1,kMailStyledTextSegmentBit);
- kMailMovieSegmentMask* = ASH(1,kMailMovieSegmentBit);
-
-
- TYPE
- MailSegmentType* = INTEGER;
-
- (* Values of MailSegmentType *)
-
- CONST
- kMailInvalidSegmentType* = 0;
- kMailTextSegmentType* = 1;
- kMailPictSegmentType* = 2;
- kMailSoundSegmentType* = 3;
- kMailStyledTextSegmentType* = 4;
- kMailMovieSegmentType* = 5;
-
- (**************************************************************************************)
- kMailErrorLogEntryVersion* = $101;
- kMailMSAMErrorStringListID* = 128; (* These LONG("STR#") resources should be *)
- kMailMSAMActionStringListID* = 129; (* in the PMSAM resource fork *)
-
-
- TYPE
- MailLogErrorType* = INTEGER;
-
- (* Values of MailLogErrorType *)
-
- CONST
- kMailELECorrectable* = 0;
- kMailELEError* = 1;
- kMailELEWarning* = 2;
- kMailELEInformational* = 3;
-
-
- TYPE
- MailLogErrorCode* = INTEGER;
-
- (* Values of MailLogErrorCode *)
-
- CONST
- kMailMSAMErrorCode* = 0; (* positive codes are indices into
- PMSAM defined strings *)
- kMailMiscError* = -1; (* negative codes are OCE defined *)
- kMailNoModem* = -2; (* modem required, but missing *)
-
-
- TYPE
- MailErrorLogEntryInfo* = RECORD
- version*: INTEGER;
- timeOccurred*: OCE.UTCTime; (* do not fill in *)
- reportingPMSAM*: Types.Str31; (* do not fill in *)
- reportingMSAMSlot*: Types.Str31; (* do not fill in *)
- errorType*: MailLogErrorType;
- errorCode*: MailLogErrorCode;
- errorResource*: INTEGER; (* resources are valid if *)
- actionResource*: INTEGER; (* errorCode* = kMailMSAMErrorCode
- index starts from 1 *)
- filler*: LONGINT;
- filler2*: INTEGER;
- END;
-
- (**************************************************************************************)
- MailBlockMode* = INTEGER;
-
- (* Values of MailBlockMode *)
-
- CONST
- kMailFromStart* = 1; (* write data from offset calculated from *)
- kMailFromLEOB* = 2; (* start of block, end of block, *)
- kMailFromMark* = 3; (* or from the current mark *)
-
-
- TYPE
- MailEnclosureInfo* = RECORD
- enclosureName*: Types.StringPtr;
- catInfo*: Files.CInfoPBPtr;
- comment*: Types.StringPtr;
- icon*: Types.Ptr;
- END;
-
- (**************************************************************************************)
-
- CONST
- kOCESetupLocationNone* = 0; (* disconnect state *)
- kOCESetupLocationMax* = 8; (* maximum location value *)
-
-
- TYPE
- OCESetupLocation* = CHAR;
-
- (* location state is a bitmask, 0x1=>1st location active,
- * 0x2 => 2nd, 0x4 => 3rd, etc.
- *)
- MailLocationFlags* = CHAR;
-
- MailLocationInfo* = RECORD
- location*: OCESetupLocation;
- active*: Types.SInt8; (* MailLocationFlags *)
- END;
-
- (**************************************************************************************)
- (* Definitions for Personal MSAMs *)
- (**************************************************************************************)
-
- CONST
- kMailEPPCMsgVersion* = 3;
-
-
- TYPE
- MailEPPCMsg* = RECORD
- version*: INTEGER;
- (*ΔΔ CASE INTEGER OF
- 0: ( *)
- END;
- MailEPPCMsgSMCA* = RECORD(MailEPPCMsg)
- theSMCA*: POINTER TO SMCA; (* for LONG("crsl"), LONG("mdsl"), LONG("dlsl"), LONG("sndi"), LONG("msgo"), LONG("admn") *)
- (*ΔΔ );
- 1: ( *)
- END;
- MailEPPCMsgSequence* = RECORD(MailEPPCMsg)
- sequenceNumber*: LONGINT; (* for LONG("inqu"), LONG("dlom") *)
- (*ΔΔ );
- 2: ( *)
- END;
- MailEPPCMsgLocation* = RECORD(MailEPPCMsg)
- locationInfo*: MailLocationInfo; (* for LONG("locc") *)
- (*ΔΔ );*)
- END;
-
- (* Values of OCE defined High Level Event message classes *)
-
- CONST
- kMailEPPCCreateSlot* = LONG("crsl");
- kMailEPPCModifySlot* = LONG("mdsl");
- kMailEPPCDeleteSlot* = LONG("dlsl");
- kMailEPPCShutDown* = LONG("quit");
- kMailEPPCMailboxOpened* = LONG("mbop");
- kMailEPPCMailboxClosed* = LONG("mbcl");
- kMailEPPCMsgPending* = LONG("msgp");
- kMailEPPCSendImmediate* = LONG("sndi");
- kMailEPPCContinue* = LONG("cont");
- kMailEPPCSchedule* = LONG("sked");
- kMailEPPCAdmin* = LONG("admn");
- kMailEPPCInQUpdate* = LONG("inqu");
- kMailEPPCMsgOpened* = LONG("msgo");
- kMailEPPCDeleteOutQMsg* = LONG("dlom");
- kMailEPPCWakeup* = LONG("wkup");
- kMailEPPCLocationChanged* = LONG("locc");
-
-
- TYPE
- MailTimer* = RECORD
- (*ΔΔ CASE INTEGER OF
- 0: ( *)
- frequency*: LONGINT; (* how often to connect *)
- (*ΔΔ );
- 1: (
- connectTime*: LONGINT; (* time since midnight *)
- );*)
- END;
-
-
- CONST
- kMailTimerOff* = 0; (* control is off *)
- kMailTimerTime* = 1; (* specifies connect time (relative to midnight) *)
- kMailTimerFrequency* = 2; (* specifies connect frequency *)
-
-
- TYPE
- MailTimerKind* = Types.Byte;
-
- MailTimers* = RECORD
- sendTimeKind*: Types.SInt8; (* MailTimerKind *) (* either kMailTimerTime or kMailTimerFrequency *)
- receiveTimeKind*: Types.SInt8; (* MailTimerKind *) (* either kMailTimerTime or kMailTimerFrequency *)
- send*: MailTimer;
- receive*: MailTimer;
- END;
-
- MailStandardSlotInfoAttribute* = RECORD
- version*: INTEGER;
- active*: Types.SInt8; (* MailLocationFlags *) (* active if MailLocationMask(i) is set *)
- padByte*: Types.SInt8; (* Types.Byte *)
- sendReceiveTimer*: MailTimers;
- END;
-
- PMSAMGetMSAMRecordPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- msamCID*: OCE.CreationID;
- END;
-
- PMSAMOpenQueuesPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- inQueueRef*: MSAMQueueRef;
- outQueueRef*: MSAMQueueRef;
- msamSlotID*: MSAMSlotID;
- filler*: ARRAY 2 (*ΔΔ[0..1]ΔΔ*) OF LONGINT;
- END;
-
- PMSAMStatus* = INTEGER;
-
- (* Values of PMSAMStatus *)
-
- CONST
- kPMSAMStatusPending* = 1; (* for inQueue and outQueue *)
- kPMSAMStatusError* = 2; (* for inQueue and outQueue *)
- kPMSAMStatusSending* = 3; (* for outQueue only *)
- kPMSAMStatusCaching* = 4; (* for inQueue only *)
- kPMSAMStatusSent* = 5; (* for outQueue only *)
-
-
- TYPE
- PMSAMSetStatusPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- queueRef*: MSAMQueueRef;
- seqNum*: LONGINT;
- msgHint*: LONGINT; (* for posting cache error,set this to 0 when report outq status *)
- status*: PMSAMStatus;
- END;
-
- PMSAMLogErrorPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- msamSlotID*: MSAMSlotID; (* 0 for PMSAM errors *)
- logEntry*: POINTER TO MailErrorLogEntryInfo;
- filler*: ARRAY 2 (*ΔΔ[0..1]ΔΔ*) OF LONGINT;
- END;
-
- (****************************************************************************************)
-
- CONST
- kMailMsgSummaryVersion* = 1;
-
-
- TYPE
- MailMasterData* = RECORD
- attrMask*: MailAttributeBitmap; (* indicates attributes present in MsgSummary *)
- messageID*: MailLetterID;
- replyID*: MailLetterID;
- conversationID*: MailLetterID;
- END;
-
- (* Values for addressedToMe in struct MailCoreData *)
-
- CONST
- kAddressedAs_TO* = $1;
- kAddressedAs_CC* = $2;
- kAddressedAs_BCC* = $4;
-
-
- TYPE
- MailCoreData* = RECORD
- letterFlags*: MailLetterFlags;
- messageSize*: LONGINT;
- letterIndications*: MailIndications;
- messageType*: OCEMessaging.OCECreatorType;
- sendTime*: MailTime;
- messageFamily*: Types.OSType;
- reserved*: Types.SInt8; (* unsigned char *)
- addressedToMe*: Types.SInt8; (* unsigned char *)
- agentInfo*: ARRAY 6 (*ΔΔ[0..5]ΔΔ*) OF CHAR; (* 6 bytes of special info [set to zero]
- * these are variable length and even padded *)
- sender*: OCE.RString32; (* recipient's entityName (trunc)*)
- subject*: OCE.RString32; (* subject maybe truncated *)
- END;
-
- MSAMMsgSummary* = RECORD
- version*: INTEGER; (* following flags are defaulted by Toolbox *)
- msgDeleted*: BOOLEAN; (* true if msg is to be deleted by PMSAM *)
- msgUpdated*: BOOLEAN; (* true if msgSummary was updated by MailManager *)
- msgCached*: BOOLEAN; (* true if msg is in the slot's InQueue *)
- padByte*: Types.SInt8; (* Types.Byte *)
- masterData*: MailMasterData;
- coreData*: MailCoreData;
- END;
-
- (* PMSAM can put up to 128 bytes of private msg summary data *)
-
- CONST
- kMailMaxPMSAMMsgSummaryData* = 128;
-
-
- TYPE
- PMSAMCreateMsgSummaryPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- inQueueRef*: MSAMQueueRef;
- seqNum*: LONGINT; (* <- seq of the new message *)
- msgSummary*: POINTER TO MSAMMsgSummary; (* attributes and mask filled in *)
- buffer*: POINTER TO MailBuffer; (* PMSAM specific data to be appended *)
- END;
-
- PMSAMPutMsgSummaryPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- inQueueRef*: MSAMQueueRef;
- seqNum*: LONGINT;
- letterFlags*: POINTER TO MailMaskedLetterFlags; (* if not nil, then set msgStoreFlags *)
- buffer*: POINTER TO MailBuffer; (* PMSAM specific data to be overwritten *)
- END;
-
- PMSAMGetMsgSummaryPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- inQueueRef*: MSAMQueueRef;
- seqNum*: LONGINT;
- msgSummary*: POINTER TO MSAMMsgSummary; (* if not nil, then read in the msgSummary *)
- buffer*: POINTER TO MailBuffer; (* PMSAM specific data to be read *)
- msgSummaryOffset*: INTEGER; (* offset of PMSAM specific data
- from start of MsgSummary *)
- END;
-
- (****************************************************************************************)
- (* Definitions for Server MSAMs *)
- (**************************************************************************************)
- SMSAMAdminCode* = INTEGER;
-
- (* Values of SMSAMAdminCode *)
-
- CONST
- kSMSAMNotifyFwdrSetupChange* = 1;
- kSMSAMNotifyFwdrNameChange* = 2;
- kSMSAMNotifyFwdrPwdChange* = 3;
- kSMSAMGetDynamicFwdrParams* = 4;
-
-
- TYPE
- SMSAMSlotChanges* = LONGINT;
-
-
- CONST
- kSMSAMFwdrHomeInternetChangedBit* = 0;
- kSMSAMFwdrConnectedToChangedBit* = 1;
- kSMSAMFwdrForeignRLIsChangedBit* = 2;
- kSMSAMFwdrMnMServerChangedBit* = 3;
-
- (* Values of SMSAMSlotChanges *)
- kSMSAMFwdrEverythingChangedMask* = -1;
- kSMSAMFwdrHomeInternetChangedMask* = ASH(1,kSMSAMFwdrHomeInternetChangedBit);
- kSMSAMFwdrConnectedToChangedMask* = ASH(1,kSMSAMFwdrConnectedToChangedBit);
- kSMSAMFwdrForeignRLIsChangedMask* = ASH(1,kSMSAMFwdrForeignRLIsChangedBit);
- kSMSAMFwdrMnMServerChangedMask* = ASH(1,kSMSAMFwdrMnMServerChangedBit);
-
- (* kSMSAMNotifyFwdrSetupChange *)
-
- TYPE
- SMSAMSetupChange* = RECORD
- whatChanged*: SMSAMSlotChanges; (* --> bitmap of what parameters changed *)
- serverHint*: AppleTalk.AddrBlock; (* --> try this ADAP server first *)
- END;
-
- (* kSMSAMNotifyFwdrNameChange *)
- SMSAMNameChange* = RECORD
- newName*: OCE.RString; (* --> msams new name *)
- serverHint*: AppleTalk.AddrBlock; (* --> try this ADAP server first *)
- END;
-
- (* kSMSAMNotifyFwdrPasswordChange *)
- SMSAMPasswordChange* = RECORD
- newPassword*: OCE.RString; (* --> msams new password *)
- serverHint*: AppleTalk.AddrBlock; (* --> try this ADAP server first *)
- END;
-
- (* kSMSAMGetDynamicFwdrParams *)
- SMSAMDynamicParams* = RECORD
- curDiskUsed*: LONGINT; (* <-- amount of disk space used by msam *)
- curMemoryUsed*: LONGINT; (* <-- amount of memory used by msam *)
- END;
-
- SMSAMAdminEPPCRequest* = RECORD
- adminCode*: SMSAMAdminCode;
- (*ΔΔ CASE INTEGER OF
- 0: ( *)
- END;
- SMSAMAdminEPPCRequestSetupChange* = RECORD(SMSAMAdminEPPCRequest)
- setupChange*: SMSAMSetupChange;
- (*ΔΔ );
- 1: ( *)
- END;
- SMSAMAdminEPPCNameChange* = RECORD(SMSAMAdminEPPCRequest)
- nameChange*: SMSAMNameChange;
- (*ΔΔ );
- 2: ( *)
- END;
- SMSAMAdminEPPCPasswordChange* = RECORD(SMSAMAdminEPPCRequest)
- passwordChange*: SMSAMPasswordChange;
- (*ΔΔ );
- 3: ( *)
- END;
- SMSAMAdminEPPCDynamicParams* = RECORD(SMSAMAdminEPPCRequest)
- dynamicParams*: SMSAMDynamicParams;
- (*ΔΔ );*)
- END;
-
- SMSAMSetupPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- serverMSAM*: OCE.RecordIDPtr;
- password*: OCE.RStringPtr;
- gatewayType*: Types.OSType;
- gatewayTypeDescription*: OCE.RStringPtr;
- catalogServerHint*: AppleTalk.AddrBlock;
- END;
-
- SMSAMStartupPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- msamIdentity*: OCEAuthDir.AuthIdentity;
- queueRef*: MSAMQueueRef;
- END;
-
- SMSAMShutdownPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- queueRef*: MSAMQueueRef;
- END;
-
- (****************************************************************************************)
- (* Definitions for reading and writing MSAM Letters *)
- (****************************************************************************************)
- MSAMEnumeratePB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- queueRef*: MSAMQueueRef;
- startSeqNum*: LONGINT;
- nextSeqNum*: LONGINT;
- (* buffer contains a Mail Reply. Each tuple is a
- MSAMEnumerateInQReply when enumerating the inQueue
- MSAMEnumerateOutQReply when enumerating the outQueue *)
- buffer*: MailBuffer;
- END;
-
- MSAMEnumerateInQReply* = RECORD
- seqNum*: LONGINT;
- msgDeleted*: BOOLEAN; (* true if msg is to be deleted by PMSAM *)
- msgUpdated*: BOOLEAN; (* true if MsgSummary has been updated by TB *)
- msgCached*: BOOLEAN; (* true if msg is in the incoming queue *)
- padByte*: Types.SInt8; (* Types.Byte *)
- END;
-
- MSAMEnumerateOutQReply* = RECORD
- seqNum*: LONGINT;
- done*: BOOLEAN; (* true if all responsible recipients have been processed *)
- priority*: OCEMessaging.IPMPriority;
- msgFamily*: Types.OSType;
- approxSize*: LONGINT;
- tunnelForm*: BOOLEAN; (* true if this letter has to be tunnelled *)
- padByte*: Types.SInt8; (* Types.Byte *)
- nextHop*: OCE.NetworkSpec; (* valid if tunnelForm is true *)
- msgType*: OCEMessaging.OCECreatorType;
- END;
-
- MSAMDeletePB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- queueRef*: MSAMQueueRef;
- seqNum*: LONGINT;
- msgOnly*: BOOLEAN; (* only valid for PMSAM & inQueue *)
- (* set true to delete message but not msgSummary *)
- padByte*: Types.SInt8; (* Types.Byte *)
- (* only valid for SMSAM & tunnelled messages *)
- result*: Types.OSErr;
- END;
-
- MSAMOpenPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- queueRef*: MSAMQueueRef;
- seqNum*: LONGINT;
- mailMsgRef*: MailMsgRef;
- END;
-
- MSAMOpenNestedPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- nestedRef*: MailMsgRef;
- END;
-
- MSAMClosePB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- END;
-
- MSAMGetMsgHeaderPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- selector*: Types.SInt8; (* IPMHeaderSelector *)
- filler1*: BOOLEAN;
- offset*: LONGINT;
- buffer*: MailBuffer;
- remaining*: LONGINT;
- END;
-
- MSAMGetAttributesPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- requestMask*: MailAttributeBitmap; (* kMailIndicationsBit thru kMailSubjectBit *)
- buffer*: MailBuffer;
- (* buffer returned will contain the attribute values of
- the attributes indicated in responseMask,
- from the attribute indicated by the least significant bit set
- to the attribute indicated by the most significant bit set.
- Note that recipients - from, to, cc, bcc cannot be read using
- this call. Use GetRecipients to read these. *)
- responseMask*: MailAttributeBitmap;
- more*: BOOLEAN;
- filler1*: BOOLEAN;
- END;
-
- (* attrID value to get resolved recipient list *)
-
- CONST
- kMailResolvedList* = 0;
-
-
- TYPE
- MailOriginalRecipient* = RECORD
- index*: INTEGER;
- END;
-
- (* Followed by OCEPackedRecipient *)
- MailResolvedRecipient* = RECORD
- index*: INTEGER;
- recipientFlags*: INTEGER;
- responsible*: BOOLEAN;
- padByte*: Types.SInt8; (* Types.Byte *)
- END;
-
- (* Followed by OCEPackedRecipient *)
- MSAMGetRecipientsPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- attrID*: MailAttributeID; (* kMailFromBit thru kMailBccBit *)
- startIndex*: INTEGER; (* starts at 1 *)
- buffer*: MailBuffer;
- (* buffer contains a Mail Reply. Each tuple is a
- MailOriginalRecipient if getting original recipients
- ie the attrID is kMail[From, To, Cc, Bcc]Bit
- MailResolvedRecipient if getting resolved reicpients
- ie the attrID is kMailResolvedList
- Both tuples are word alligned. *)
- nextIndex*: INTEGER;
- more*: BOOLEAN;
- filler1*: BOOLEAN;
- END;
-
- MSAMGetContentPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- segmentMask*: MailSegmentMask;
- buffer*: MailBuffer;
- textScrap*: POINTER TO TextEdit.StScrpRec;
- script*: Types.ScriptCode;
- segmentType*: MailSegmentType;
- endOfScript*: BOOLEAN;
- endOfSegment*: BOOLEAN;
- endOfContent*: BOOLEAN;
- filler1*: BOOLEAN;
- segmentLength*: LONGINT; (* NEW*: <- valid first call in a segment *)
- segmentID*: LONGINT; (* NEW*: <-> identifier for this segment *)
- END;
-
- MSAMGetEnclosurePB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- contentEnclosure*: BOOLEAN;
- padByte*: Types.SInt8; (* Types.Byte *)
- buffer*: MailBuffer;
- endOfFile*: BOOLEAN;
- endOfEnclosures*: BOOLEAN;
- END;
-
- MailBlockInfo* = RECORD
- blockType*: OCEMessaging.OCECreatorType;
- offset*: LONGINT;
- blockLength*: LONGINT;
- END;
-
- MSAMEnumerateBlocksPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- startIndex*: INTEGER; (* starts at 1 *)
- buffer*: MailBuffer;
- (* buffer contains a Mail Reply. Each tuple is a MailBlockInfo *)
- nextIndex*: INTEGER;
- more*: BOOLEAN;
- filler1*: BOOLEAN;
- END;
-
- MSAMGetBlockPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- blockType*: OCEMessaging.OCECreatorType;
- blockIndex*: INTEGER;
- buffer*: MailBuffer;
- dataOffset*: LONGINT;
- endOfBlock*: BOOLEAN;
- padByte*: Types.SInt8; (* Types.Byte *)
- remaining*: LONGINT;
- END;
-
- (* YOU SHOULD BE USING THE NEW FORM OF MARK RECIPIENTS
- * THIS VERSION IS MUCH SLOWER AND KEPT FOR COMPATIBILITY
- * REASONS.
- *)
- (* not valid for tunnel form letters *)
- MSAMMarkRecipientsPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- queueRef*: MSAMQueueRef;
- seqNum*: LONGINT;
- (* buffer contains a Mail Reply. Each tuple is an unsigned short,
- the index of a recipient to be marked. *)
- buffer*: MailBuffer;
- END;
-
- (*
- * same as MSAMMarkRecipients except it takes a mailMsgRef instead of
- * queueRef, seqNum
- *)
- (* not valid for tunnel form letters *)
- MSAMnMarkRecipientsPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- (* buffer contains a Mail Reply. Each tuple is an unsigned short,
- the index of a recipient to be marked. *)
- buffer*: MailBuffer;
- END;
-
- (****************************************************************************************)
- MSAMCreatePB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- queueRef*: MSAMQueueRef;
- asLetter*: BOOLEAN; (* indicate if we should create as letter or msg *)
- filler1*: BOOLEAN;
- msgType*: OCEMessaging.IPMMsgType; (* up to application discretion*: must be of IPMSenderTag
- kIPMOSFormatType for asLetter=true *)
- refCon*: LONGINT; (* for messages only *)
- seqNum*: LONGINT; (* set if creating message in the inQueue *)
- tunnelForm*: BOOLEAN; (* if true tunnelForm else newForm *)
- bccRecipients*: BOOLEAN; (* true if creating letter with bcc recipients *)
- newRef*: MailMsgRef;
- END;
-
- MSAMBeginNestedPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- refCon*: LONGINT; (* for messages only *)
- msgType*: OCEMessaging.IPMMsgType;
- END;
-
- MSAMEndNestedPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- END;
-
- MSAMSubmitPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- submitFlag*: BOOLEAN;
- padByte*: Types.SInt8; (* Types.Byte *)
- msgID*: MailLetterID;
- END;
-
- MSAMPutMsgHeaderPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- replyQueue*: POINTER TO OCEMessaging.OCERecipient;
- sender*: POINTER TO OCEMessaging.IPMSender;
- deliveryNotification*: OCEMessaging.IPMNotificationType;
- priority*: OCEMessaging.IPMPriority;
- END;
-
- MSAMPutAttributePB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- attrID*: MailAttributeID; (* kMailIndicationsBit thru kMailSubjectBit *)
- buffer*: MailBuffer;
- END;
-
- MSAMPutRecipientPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- attrID*: MailAttributeID; (* kMailFromBit thru kMailBccBit *)
- recipient*: POINTER TO MailRecipient;
- responsible*: BOOLEAN; (* valid for server and message msams only *)
- filler1*: BOOLEAN;
- END;
-
- MSAMPutContentPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- segmentType*: MailSegmentType;
- append*: BOOLEAN;
- padByte*: Types.SInt8; (* Types.Byte *)
- buffer*: MailBuffer;
- textScrap*: POINTER TO TextEdit.StScrpRec;
- startNewScript*: BOOLEAN;
- filler1*: BOOLEAN;
- script*: Types.ScriptCode; (* valid only if startNewScript is true *)
- END;
-
- MSAMPutEnclosurePB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- contentEnclosure*: BOOLEAN;
- padByte*: Types.SInt8; (* Types.Byte *)
- hfs*: BOOLEAN; (* true => in file system, false => in memory *)
- append*: BOOLEAN;
- buffer*: MailBuffer; (* Unused if hfs == true *)
- enclosure*: Files.FSSpec;
- addlInfo*: MailEnclosureInfo;
- END;
-
- MSAMPutBlockPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- refCon*: LONGINT; (* for messages only *)
- blockType*: OCEMessaging.OCECreatorType;
- append*: BOOLEAN;
- filler1*: BOOLEAN;
- buffer*: MailBuffer;
- mode*: MailBlockMode; (* if blockType is kMailTunnelLtrType or kMailHopInfoType
- mode is assumed to be kMailFromMark *)
- offset*: LONGINT;
- END;
-
- (****************************************************************************************)
- MSAMCreateReportPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- queueRef*: MSAMQueueRef; (* to distinguish personal and server MSAMs *)
- mailMsgRef*: MailMsgRef;
- msgID*: MailLetterID; (* kMailLetterIDBit of letter being reported upon *)
- sender*: POINTER TO MailRecipient; (* sender of the letter you are creating report on *)
- END;
-
- MSAMPutRecipientReportPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailMsgRef*: MailMsgRef;
- recipientIndex*: INTEGER; (* recipient index in the original letter *)
- result*: Types.OSErr; (* result of sending the recipient *)
- END;
-
- (****************************************************************************************)
- MailWakeupPMSAMPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- pmsamCID*: OCE.CreationID;
- mailSlotID*: MailSlotID;
- END;
-
- MailCreateMailSlotPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailboxRef*: MailboxRef;
- timeout*: LONGINT;
- pmsamCID*: OCE.CreationID;
- smca*: SMCA;
- END;
-
- MailModifyMailSlotPB* = RECORD
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- mailboxRef*: MailboxRef;
- timeout*: LONGINT;
- pmsamCID*: OCE.CreationID;
- smca*: SMCA;
- END;
-
- (****************************************************************************************)
-
- CONST
- kPMSAMGetMSAMRecord* = 1286;
- kPMSAMOpenQueues* = 1280;
- kPMSAMLogError* = 1313;
- kPMSAMSetStatus* = 1319;
- kPMSAMCreateMsgSummary* = 1314;
- kPMSAMPutMsgSummary* = 1317;
- kPMSAMGetMsgSummary* = 1318;
- kMailWakeupPMSAM* = 1287;
- kSMSAMSetup* = 1315;
- kSMSAMStartup* = 1281;
- kSMSAMShutdown* = 1282;
- kMSAMEnumerate* = 1283;
- kMSAMDelete* = 1284;
- kMSAMOpen* = 1288;
- kMSAMOpenNested* = 1289;
- kMSAMClose* = 1290;
- kMSAMGetMsgHeader* = 1297;
- kMSAMnMarkRecipients* = 1298;
- kMSAMGetAttributes* = 1291;
- kMSAMGetRecipients* = 1292;
- kMSAMGetContent* = 1293;
- kMSAMGetEnclosure* = 1294;
- kMSAMEnumerateBlocks* = 1295;
- kMSAMGetBlock* = 1296;
- kMSAMMarkRecipients* = 1285;
- kMSAMCreate* = 1300;
- kMSAMBeginNested* = 1301;
- kMSAMEndNested* = 1302;
- kMSAMSubmit* = 1303;
- kMSAMPutMsgHeader* = 1309;
- kMSAMPutAttribute* = 1304;
- kMSAMPutRecipient* = 1305;
- kMSAMPutContent* = 1306;
- kMSAMPutEnclosure* = 1307;
- kMSAMPutBlock* = 1308;
- kMSAMCreateReport* = 1311;
- kMSAMPutRecipientReport* = 1312;
- kMailCreateMailSlot* = 1323;
- kMailModifyMailSlot* = 1324;
-
-
- TYPE
- MSAMParam* = RECORD
- (*ΔΔ CASE INTEGER OF
- 0: ( *)
- qLink*: Types.Ptr;
- reservedH1*: LONGINT;
- reservedH2*: LONGINT;
- ioCompletion*: MSAMIOCompletionUPP;
- ioResult*: Types.OSErr;
- saveA5*: LONGINT;
- reqCode*: INTEGER;
- (*ΔΔ );
- 1: (
- pmsamGetMSAMRecord*: PMSAMGetMSAMRecordPB;
- );
- 2: (
- pmsamOpenQueues*: PMSAMOpenQueuesPB;
- );
- 3: (
- pmsamSetStatus*: PMSAMSetStatusPB;
- );
- 4: (
- pmsamLogError*: PMSAMLogErrorPB;
- );
- 5: (
- smsamSetup*: SMSAMSetupPB;
- );
- 6: (
- smsamStartup*: SMSAMStartupPB;
- );
- 7: (
- smsamShutdown*: SMSAMShutdownPB;
- );
- 8: (
- msamEnumerate*: MSAMEnumeratePB;
- );
- 9: (
- msamDelete*: MSAMDeletePB;
- );
- 10: (
- msamOpen*: MSAMOpenPB;
- );
- 11: (
- msamOpenNested*: MSAMOpenNestedPB;
- );
- 12: (
- msamClose*: MSAMClosePB;
- );
- 13: (
- msamGetMsgHeader*: MSAMGetMsgHeaderPB;
- );
- 14: (
- msamGetAttributes*: MSAMGetAttributesPB;
- );
- 15: (
- msamGetRecipients*: MSAMGetRecipientsPB;
- );
- 16: (
- msamGetContent*: MSAMGetContentPB;
- );
- 17: (
- msamGetEnclosure*: MSAMGetEnclosurePB;
- );
- 18: (
- msamEnumerateBlocks*: MSAMEnumerateBlocksPB;
- );
- 19: (
- msamGetBlock*: MSAMGetBlockPB;
- );
- 20: (
- msamMarkRecipients*: MSAMMarkRecipientsPB;
- );
- 21: (
- msamnMarkRecipients*: MSAMnMarkRecipientsPB;
- );
- 22: (
- msamCreate*: MSAMCreatePB;
- );
- 23: (
- msamBeginNested*: MSAMBeginNestedPB;
- );
- 24: (
- msamEndNested*: MSAMEndNestedPB;
- );
- 25: (
- msamSubmit*: MSAMSubmitPB;
- );
- 26: (
- msamPutMsgHeader*: MSAMPutMsgHeaderPB;
- );
- 27: (
- msamPutAttribute*: MSAMPutAttributePB;
- );
- 28: (
- msamPutRecipient*: MSAMPutRecipientPB;
- );
- 29: (
- msamPutContent*: MSAMPutContentPB;
- );
- 30: (
- msamPutEnclosure*: MSAMPutEnclosurePB;
- );
- 31: (
- msamPutBlock*: MSAMPutBlockPB;
- );
- 32: (
- msamCreateReport*: MSAMCreateReportPB; (* Reports and Error Handling Calls *)
- );
- 33: (
- msamPutRecipientReport*: MSAMPutRecipientReportPB;
- );
- 34: (
- pmsamCreateMsgSummary*: PMSAMCreateMsgSummaryPB;
- );
- 35: (
- pmsamPutMsgSummary*: PMSAMPutMsgSummaryPB;
- );
- 36: (
- pmsamGetMsgSummary*: PMSAMGetMsgSummaryPB;
- );
- 37: (
- wakeupPMSAM*: MailWakeupPMSAMPB;
- );
- 38: (
- createMailSlot*: MailCreateMailSlotPB;
- );
- 39: (
- modifyMailSlot*: MailModifyMailSlotPB;
- );*)
- END;
-
- MSAMIOCompletionProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (VAR paramBlock: MSAMParam);
-
- CONST
- uppMSAMIOCompletionProcInfo* = $000000C0; (* PROCEDURE (4 byte param); *)
-
- PROCEDURE CallMSAMIOCompletionProc*(VAR paramBlock: MSAMParam; userRoutine: MSAMIOCompletionUPP);
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $205F, $4E90;
- (*$END*)
-
- PROCEDURE NewMSAMIOCompletionProc*(userRoutine: MSAMIOCompletionProcPtr): MSAMIOCompletionUPP;
- (*$IF NOT GENERATINGCFM *)
- INLINE PASCAL $2E9F;
- (*$END*)
-
- PROCEDURE MailCreateMailSlot*(VAR paramBlock: MSAMParam): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7001, $1f00, $3f3c, 1323, $AA5E;
- (*$END*)
- (* ASYNCHRONOUS ONLY, client must call WaitNextEvent *)
- PROCEDURE MailModifyMailSlot*(VAR paramBlock: MSAMParam): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7001, $1f00, $3f3c, 1324, $AA5E;
- (*$END*)
- (* ASYNCHRONOUS ONLY, client must call WaitNextEvent *)
- PROCEDURE MailWakeupPMSAM*(VAR paramBlock: MSAMParam): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7001, $1f00, $3f3c, 1287, $AA5E;
- (*$END*)
- (* Personal MSAM Glue Routines *)
- PROCEDURE PMSAMOpenQueues*(VAR paramBlock: MSAMParam): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7000, $1f00, $3f3c, 1280, $AA5E;
- (*$END*)
- PROCEDURE PMSAMSetStatus*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1319, $AA5E;
- (*$END*)
- (* SYNC ONLY *)
- PROCEDURE PMSAMGetMSAMRecord*(VAR paramBlock: MSAMParam): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7000, $1f00, $3f3c, 1286, $AA5E;
- (*$END*)
- (* Server MSAM Glue Routines *)
- (* SYNC ONLY *)
- PROCEDURE SMSAMSetup*(VAR paramBlock: MSAMParam): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7000, $1f00, $3f3c, 1315, $AA5E;
- (*$END*)
- (* SYNC ONLY *)
- PROCEDURE SMSAMStartup*(VAR paramBlock: MSAMParam): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7000, $1f00, $3f3c, 1281, $AA5E;
- (*$END*)
- PROCEDURE SMSAMShutdown*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1282, $AA5E;
- (*$END*)
- (* Get Interface Glue Routines *)
- PROCEDURE MSAMEnumerate*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1283, $AA5E;
- (*$END*)
- PROCEDURE MSAMDelete*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1284, $AA5E;
- (*$END*)
- PROCEDURE MSAMMarkRecipients*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1285, $AA5E;
- (*$END*)
- PROCEDURE MSAMnMarkRecipients*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1298, $AA5E;
- (*$END*)
- PROCEDURE MSAMOpen*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1288, $AA5E;
- (*$END*)
- PROCEDURE MSAMOpenNested*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1289, $AA5E;
- (*$END*)
- PROCEDURE MSAMClose*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1290, $AA5E;
- (*$END*)
- PROCEDURE MSAMGetRecipients*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1292, $AA5E;
- (*$END*)
- PROCEDURE MSAMGetAttributes*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1291, $AA5E;
- (*$END*)
- PROCEDURE MSAMGetContent*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1293, $AA5E;
- (*$END*)
- PROCEDURE MSAMGetEnclosure*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1294, $AA5E;
- (*$END*)
- PROCEDURE MSAMEnumerateBlocks*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1295, $AA5E;
- (*$END*)
- PROCEDURE MSAMGetBlock*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1296, $AA5E;
- (*$END*)
- PROCEDURE MSAMGetMsgHeader*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1297, $AA5E;
- (*$END*)
- (* Put Interface Glue Routines *)
- PROCEDURE MSAMCreate*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1300, $AA5E;
- (*$END*)
- PROCEDURE MSAMBeginNested*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1301, $AA5E;
- (*$END*)
- PROCEDURE MSAMEndNested*(VAR paramBlock: MSAMParam): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7000, $1f00, $3f3c, 1302, $AA5E;
- (*$END*)
- (* SYNCHRONOUS ONLY *)
- PROCEDURE MSAMSubmit*(VAR paramBlock: MSAMParam): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7000, $1f00, $3f3c, 1303, $AA5E;
- (*$END*)
- PROCEDURE MSAMPutAttribute*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1304, $AA5E;
- (*$END*)
- PROCEDURE MSAMPutRecipient*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1305, $AA5E;
- (*$END*)
- PROCEDURE MSAMPutContent*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1306, $AA5E;
- (*$END*)
- (* SYNCHRONOUS ONLY *)
- PROCEDURE MSAMPutEnclosure*(VAR paramBlock: MSAMParam): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7000, $1f00, $3f3c, 1307, $AA5E;
- (*$END*)
- PROCEDURE MSAMPutBlock*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1308, $AA5E;
- (*$END*)
- PROCEDURE MSAMPutMsgHeader*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1309, $AA5E;
- (*$END*)
- (* Reports and Error Handling Glue Routines *)
- PROCEDURE MSAMCreateReport*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1311, $AA5E;
- (*$END*)
- PROCEDURE MSAMPutRecipientReport*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1312, $AA5E;
- (*$END*)
- PROCEDURE PMSAMLogError*(VAR paramBlock: MSAMParam): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $7000, $1f00, $3f3c, 1313, $AA5E;
- (*$END*)
- (* MsgSummary Glue Routines *)
- PROCEDURE PMSAMCreateMsgSummary*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1314, $AA5E;
- (*$END*)
- PROCEDURE PMSAMPutMsgSummary*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1317, $AA5E;
- (*$END*)
- PROCEDURE PMSAMGetMsgSummary*(VAR paramBlock: MSAMParam; asyncFlag: BOOLEAN): Types.OSErr;
- (*$IF NOT GENERATINGCFM*)
- INLINE PASCAL $3f3c, 1318, $AA5E;
- (*$END*)
-
- (* $ALIGN RESET*)
- (* $POP*)
-
- END OCEMail.
-